package com.micro.ai.template.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.template.entity.TemplateReview;

import java.util.List;

/**
 * 模板审核Service
 *
 * @author micro-ai
 * @since 0.0.1
 */
public interface TemplateReviewService extends IService<TemplateReview> {

    /**
     * 提交审核
     *
     * @param templateId 模板ID
     * @param submitterId 提交者ID
     * @return 审核记录
     */
    TemplateReview submitReview(String templateId, String submitterId);

    /**
     * 审核通过
     *
     * @param reviewId 审核ID
     * @param reviewerId 审核者ID
     * @param comment 审核意见
     */
    void approveReview(String reviewId, String reviewerId, String comment);

    /**
     * 审核拒绝
     *
     * @param reviewId 审核ID
     * @param reviewerId 审核者ID
     * @param comment 拒绝原因
     */
    void rejectReview(String reviewId, String reviewerId, String comment);

    /**
     * 获取待审核列表
     *
     * @param page 分页参数
     * @return 待审核列表
     */
    IPage<TemplateReview> getPendingReviews(Page<TemplateReview> page);

    /**
     * 获取模板的审核历史
     *
     * @param templateId 模板ID
     * @return 审核历史
     */
    List<TemplateReview> getTemplateReviewHistory(String templateId);

    /**
     * 获取模板当前审核状态
     *
     * @param templateId 模板ID
     * @return 审核记录
     */
    TemplateReview getCurrentReview(String templateId);
}

